home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 11 / Amiga Plus 11: Amiga Future.iso / rexx / dignetdemo.rexx < prev    next >
OS/2 REXX Batch file  |  1997-08-23  |  5KB  |  191 lines

  1. /***************************************************************************\
  2. **
  3. **    DIGNET AREXX DEMO SCRIPT 1.0
  4. **
  5. **
  6. **    Copyright © 1997 by Digital Surface and Kenneth "Kenny" Nilsen
  7. **    Public domain.
  8. **
  9. **---------------------------------------------------------------------------
  10. **
  11. **    The arexx commands has the same names as the library function names.
  12. **
  13. **    NOTE WELL: Max length to read or write is 65536 bytes (64kb) length!
  14. **    Never ever use any length longer than this. You must buffer the
  15. **    read/write if you need longer lengths than this (this only complies
  16. **    to the arexx interface - not the library functions). This behaviour
  17. **    may change in the future.
  18. **
  19. \***************************************************************************/
  20.  
  21.  
  22. LF = '0a'x            /* LineFeed          chr(10)
  23.                 */
  24. CR = '0d'x            /* Carriage Return   chr(13)
  25.                 */
  26. Options RESULTS            /* important or else we wount get net number
  27.                 */
  28.                 /* Load dignet.library into memory
  29.                 */
  30. IF ~show('p', 'DIGNET') then do
  31.     address command
  32.         "c:loadlib dignet.library"
  33.         "WaitForPort DIGNET"
  34.         END
  35.  
  36. Address "DIGNET"           /* arexx port of library
  37. --------------------------------*/
  38.  
  39.                 /* Allocate a device and unit
  40.                    IMPORTANT: You must enquote the devicename
  41.                    or else AREXX will uppercase it. Device
  42.                    names are case-sensitive..
  43.                 */
  44. AllocNet "duart.device" 0
  45. Net=RESULT
  46.                 /* if RC isn't NULL there occured an error
  47.                 */
  48. IF (rc~=0) then do
  49.     say "ERROR: Couldn't allocate this net! Check device name and unit.."
  50.     exit 0
  51.     END
  52.  
  53. SAY LF||"- Allocated net number:" Net
  54.  
  55.  
  56.                 /* Now we'll do some stuff with the lib
  57. --------------------------------*/
  58.  
  59.                 /* We will capture all IO into "ram:test.log
  60.                 */
  61.  
  62. SAY "- Starting IO capturing of file 'ram:test.log'"
  63.  
  64. CaptureTextStart '"'Net'"' 0 "ram:test.log"
  65. IF (rc~=0) then SAY "Couldn't capture to file!"
  66.  
  67.                 /* Set default parameters
  68.                 */
  69. SetDefault '"'Net'"'
  70. IF (rc~=0) then say "Couldn't set default parameters to net!"
  71.  
  72.                 /* Flush the net to clear buffers etc.
  73.                 */
  74. FlushNet '"'net'"'
  75. IF (rc~=0) then say "Couldn't flush the net!"
  76.  
  77.                 /* Ok, lets assume we have a modem connected
  78.                    to the port. Will will try to send a
  79.                    command 'ATZ'to the modem..
  80.                 */
  81.  
  82. SAY "- Sending 'ATZ' to the modem and waiting 1 second.."
  83.  
  84. WriteString '"'Net'"' "ATZ"||CR
  85. IF (rc~=0) then do
  86.     SAY "Error while writing to net!"
  87.     SAY "Modem probably not connected..."
  88.     FreeNet '"'Net'"'
  89.     exit 0
  90.     END            /* Delay 1 second before testing feedback.
  91.                    The Timeout command returns immediatly if
  92.                    there is one or more bytes sent so the
  93.                    modem doesn't have enough time to send us
  94.                    all the datas...
  95.                 */
  96. Address Command 'c:wait 1'
  97.  
  98.                 /* Wait for respons (an OK etc.) - give modem
  99.                    2 seconds to answer
  100.                 */
  101. TimeOut '"'net'"' 2
  102. Bytes=RESULT
  103.  
  104. SAY "- There are/is" bytes "byte(s) waiting to be read."
  105.  
  106. IF Bytes=0 then do
  107.     SAY "Error: Didn't get any respons from modem.. quiting!"
  108.     FreeNet '"'Net'"'
  109.     exit 0
  110.     END
  111.                 /* now read the chars and print them to
  112.                    console
  113.                 */
  114.  
  115. SAY "- Reading byte(s) and showing:"
  116.  
  117. ReadNet    '"'Net'"' '"'Bytes'"'
  118. IF (rc~=0) then SAY "An error occured while reading the net!"
  119.  
  120. SAY RESULT            /* Here we type the buffer
  121.                 */
  122.                 /* We don't want more capturing so stop it..
  123.                 */
  124. SAY "- Ending IO capture"
  125.  
  126. CaptureTextEnd '"'Net'"'
  127. IF (rc~=0) then SAY "There was no capture file to stop.."
  128.  
  129.                 /* Get some info
  130.                 */
  131. GetCurrentDevice '"'Net'"'
  132. Device=RESULT
  133.  
  134. GetCurrentUnit '"'Net'"'
  135. Unit=RESULT
  136.  
  137. SAY "- The net allocated is using the '"device"' unit '"unit"'"
  138.  
  139.                 /* Get baudrate we're using
  140.                 */
  141. GetBaudrate '"'Net'"'
  142. baudrate=RESULT
  143.  
  144. SAY "- Default baud speed is" baudrate "baud"
  145.  
  146.                 /* Set a different baudrate
  147.                 */
  148.  
  149. SAY "- We will change default baud rate to 57600 baud..."
  150.  
  151. SetBaud '"'Net'"' 57600
  152.  
  153.                 /* Show new baud rate
  154.                 */
  155. GetBaudrate '"'net'"'
  156. SAY "- New default baud speed is" RESULT "baud"
  157.  
  158.                 /* be nice and set back to original baudrate
  159.                 */
  160.  
  161. SAY "- We're nice so we'll set it back to" baudrate "baud"
  162.  
  163. SetBaud '"'Net'"' '"'baudrate'"'
  164.  
  165.  
  166.                 /* Now free the net - we're done..
  167. --------------------------------*/
  168.  
  169. SAY "Done!"
  170.  
  171. FreeNet '"'Net'"'           /* Enclose the net variable like this or else
  172.                    arexx will give the keyword 'net' instead
  173.                    of its contents (the netnumber)
  174.                 */
  175.  
  176.                 /* Did we try to free a non existing net ?
  177.                    (asks resource tracking)
  178.                 */
  179.  
  180. IF (rc=5) then SAY "Error: Net' Net 'was not allocated!"
  181.  
  182. /* TIP: you can free other nets as well so be careful. You could use this
  183.    "feature" in conjunction with resource tracking to write a simple RT tool
  184.    f.ex:  1> rx "address dignet;freenet "<netnumber>" - that's it..
  185.    BE POLITE!
  186.  
  187.    A protection feature may be integrated in the future to prevent this.
  188. */
  189.  
  190. exit 0
  191.